package hottargui.config;

import hottargui.framework.*;
import hottargui.gui.GammaGuiToolFactory;
import hottargui.standard.*;
import hottargui.view.GuiToolFactory;

public class GammaTarguiFactory implements TarguiFactory {

	public TarguiState getAttackState(Game context, Position base, Position target) {
		return null;
	}

	public TarguiState getBuyState(Game context) {
		return new StandardBuyState(context);
	}

	public TarguiState getDefendState(Game context, Position base, Position target) {
		return null;
	}

	public TarguiState getEndGameState(Game context) {
		return new StandardEndGameState(context);
	}

	public TarguiState getEndRoundState(Game context) {
		return new GammaEndRoundState(context);
	}

	public TarguiState getEndTurnState(Game context) {
		return new StandardEndTurnState(context);
	}

	public TarguiState getMoveState(Game context) {
		return new StandardMoveState(context);
	}

	public TarguiState getNewGameState(Game context) {
		return new GammaNewGameState(context);
	}

	public AttackStrategy getAttackStrategy() {
		return null;
	}

	public BoardStrategy getBoardStrategy() {
		return new StandardBoardStrategy();
	}

	public BuyStrategy getBuyStrategy() {
		return new StandardBuyStrategy();
	}

	public TurnSequenceStrategy getTurnSequenceStrategy() {
		return new GammaTurnSequenceStrategy();
	}

	public WinnerStrategy getWinnerStrategy() {
		return new DecisionWinnerStrategy(new RevenueWinnerStrategy(),new SaltmineWinnerStrategy());
	}

	public GameObjectServer getGameObjectServer() {
		return new GameObjectServer(this);
	}

	public DiceRollStrategy getDiceRollStrategy() {
	    return new StandardDiceRollStrategy();
	}
	
	public GameRoundsStrategy getGameRoundsStrategy() {
		return new RoundsStrategy(12);
	}

	public GuiToolFactory getGuiToolFactory() {
		return new GammaGuiToolFactory();
	}
}
